package com.ruoyi.report_jl.domain.vo;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.utils.BigDecimalUtil;
import com.ruoyi.report_tg.domain.vo.ExcelGeneralVo;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;


/**
 * 粗集料密度、吸水率试验检测记录（网篮法）混凝土用视图对象 report_jl_cjlmdxslwlfhntyjlb_bs_info
 *
 * @author tll
 * @date 2024-05-23
 */
@Data
@ExcelIgnoreUnannotated
public class ReportJlCjlmdxslwlfhntyjlbBsInfoVo extends ExcelGeneralVo {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @ExcelProperty(value = "id")
    private Long excelId;

    /**
     * 共几页
     */
    @ExcelProperty(value = "共几页")
    private Long totalPage;

    /**
     * 第几页
     */
    @ExcelProperty(value = "第几页")
    private Long page;

    /**
     * 记录编号
     */
    @ExcelProperty(value = "记录编号")
    private String jilbh;

    /**
     * 检测单位名称
     */
    @ExcelProperty(value = "检测单位名称")
    private String jiancdwmc;

    /**
     * 工程部位/用途
     */
    @ExcelProperty(value = "工程部位/用途")
    private String gongcbwyt;

    /**
     * 样品名称
     */
    @ExcelProperty(value = "样品名称")
    private String yangpmc;

    /**
     * 样品编号
     */
    @ExcelProperty(value = "样品编号")
    private String yangpbh;

    /**
     * 样品数量
     */
    @ExcelProperty(value = "样品数量")
    private String yangpsl;

    /**
     * 样品状态
     */
    @ExcelProperty(value = "样品状态")
    private String yangpzt;

    /**
     * 样品时间
     */
    @ExcelProperty(value = "样品时间")
    private String yangpsj;

    /**
     * 试验检测日期
     */
    @ExcelProperty(value = "试验检测日期")
    private String shiyjcrq;

    /**
     * 试验条件温度
     */
    @ExcelProperty(value = "试验条件温度")
    private String shiytjwd;

    /**
     * 试验条件湿度
     */
    @ExcelProperty(value = "试验条件湿度")
    private String shiytjsd;

    /**
     * 检测依据
     */
    @ExcelProperty(value = "检测依据")
    private String jiancyj;

    /**
     * 判定依据
     */
    @ExcelProperty(value = "判定依据")
    private String pandyj;

    /**
     * 主要仪器设备名称及编号
     */
    @ExcelProperty(value = "主要仪器设备名称及编号")
    private String zhuyyqsbmcjbh;

    /**
     * 附加声明
     */
    @ExcelProperty(value = "附加声明")
    private String fujsm;

    /**
     * 报表名称
     */
    @ExcelProperty(value = "报表名称")
    private String baobmc;

    /**
     * 报表编号
     */
    @ExcelProperty(value = "报表编号")
    private String baobbh;

    /**
     * 工程名称
     */
    @ExcelProperty(value = "工程名称")
    private String gongcmc;

    /**
     * 检测人
     */
    @ExcelProperty(value = "检测人")
    private String jiancr;

    /**
     * 记录人
     */
    @ExcelProperty(value = "记录人")
    private String jilr;

    /**
     * 复核人
     */
    @ExcelProperty(value = "复核人")
    private String fuhr;

    /**
     * 日期
     */
    @ExcelProperty(value = "日期")
    private Date riq;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 取样地点
     */
    @ExcelProperty(value = "取样地点")
    private String quydd;

    /**
     * 产地
     */
    @ExcelProperty(value = "产地")
    private String chand;

    /**
     * 代表数量
     */
    @ExcelProperty(value = "代表数量")
    private String daibsl;

    /**
     * 进场日期
     */
    @ExcelProperty(value = "进场日期")
    private String jincrq;

    /**
     * 松散容量筒质量kg行1
     */
    @ExcelProperty(value = "松散容量筒质量kg行1")
    private BigDecimal songsrltzlItem1;

    /**
     * 松散容量筒与试样总质量kg行1
     */
    @ExcelProperty(value = "松散容量筒与试样总质量kg行1")
    private BigDecimal songsrltsyzzlItem1;

    /**
     * 松散容量筒容积l行1
     */
    @ExcelProperty(value = "松散容量筒容积l行1")
    private BigDecimal songsrltrjItem1;

    /**
     * 松散堆积密度kg/m3行1
     */
    @ExcelProperty(value = "松散堆积密度kg/m3行1")
    private BigDecimal songsdjmdItem1;

    /**
     * 松散容量筒质量kg行2
     */
    @ExcelProperty(value = "松散容量筒质量kg行2")
    private BigDecimal songsrltzlItem2;

    /**
     * 松散容量筒与试样总质量kg行2
     */
    @ExcelProperty(value = "松散容量筒与试样总质量kg行2")
    private BigDecimal songsrltsyzzlItem2;

    /**
     * 松散容量筒容积l行2
     */
    @ExcelProperty(value = "松散容量筒容积l行2")
    private BigDecimal songsrltrjItem2;

    /**
     * 松散堆积密度kg/m3行2
     */
    @ExcelProperty(value = "松散堆积密度kg/m3行2")
    private BigDecimal songsdjmdItem2;

    /**
     * 松散平均值kg/m3
     */
    @ExcelProperty(value = "松散平均值kg/m3")
    private BigDecimal songsPjz;

    /**
     * 振实容量筒质量kg行1
     */
    @ExcelProperty(value = "振实容量筒质量kg行1")
    private BigDecimal zhensrltzlItem1;

    /**
     * 振实容量筒与试样总质量kg行1
     */
    @ExcelProperty(value = "振实容量筒与试样总质量kg行1")
    private BigDecimal zhensrltsyzzlItem1;

    /**
     * 振实容量筒容积l行1
     */
    @ExcelProperty(value = "振实容量筒容积l行1")
    private BigDecimal zhensrltrjItem1;

    /**
     * 振实堆积密度kg/m3行1
     */
    @ExcelProperty(value = "振实堆积密度kg/m3行1")
    private BigDecimal zhensdjmdItem1;

    /**
     * 振实容量筒质量kg行2
     */
    @ExcelProperty(value = "振实容量筒质量kg行2")
    private BigDecimal zhensrltzlItem2;

    /**
     * 振实容量筒与试样总质量kg行2
     */
    @ExcelProperty(value = "振实容量筒与试样总质量kg行2")
    private BigDecimal zhensrltsyzzlItem2;

    /**
     * 振实容量筒容积l行2
     */
    @ExcelProperty(value = "振实容量筒容积l行2")
    private BigDecimal zhensrltrjItem2;

    /**
     * 振实堆积密度kg/m3行2
     */
    @ExcelProperty(value = "振实堆积密度kg/m3行2")
    private BigDecimal zhensdjmdItem2;

    /**
     * 振实平均值kg/m3
     */
    @ExcelProperty(value = "振实平均值kg/m3")
    private BigDecimal zhensPjz;

    /**
     * 集料水中质量mw(g)行1
     */
    @ExcelProperty(value = "集料水中质量mw(g)行1")
    private BigDecimal jilszzlItem1;

    /**
     * 集料烘干质量ma(g)行1
     */
    @ExcelProperty(value = "集料烘干质量ma(g)行1")
    private BigDecimal jilhgzlItem1;

    /**
     * 集料表干质量mf(g)行1
     */
    @ExcelProperty(value = "集料表干质量mf(g)行1")
    private BigDecimal jilbgzlItem1;

    /**
     * 水温（℃）行1
     */
    @ExcelProperty(value = "水温", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "℃=")
    private BigDecimal shuiwItem1;

    /**
     * 水密度(g/cm³）行1
     */
    @ExcelProperty(value = "水密度(g/cm³）行1")
    private BigDecimal shuimdItem1;

    /**
     * 表观密度(g/cm³）行1
     */
    @ExcelProperty(value = "表观密度(g/cm³）行1")
    private BigDecimal biaogmdItem1;

    /**
     * 集料水中质量mw(g)行2
     */
    @ExcelProperty(value = "集料水中质量mw(g)行2")
    private BigDecimal jilszzlItem2;

    /**
     * 集料烘干质量ma(g)行2
     */
    @ExcelProperty(value = "集料烘干质量ma(g)行2")
    private BigDecimal jilhgzlItem2;

    /**
     * 集料表干质量mf(g)行2
     */
    @ExcelProperty(value = "集料表干质量mf(g)行2")
    private BigDecimal jilbgzlItem2;

    /**
     * 水温（℃）行2
     */
    @ExcelProperty(value = "水温", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "℃=")
    private BigDecimal shuiwItem2;

    /**
     * 水密度(g/cm³）行2
     */
    @ExcelProperty(value = "水密度(g/cm³）行2")
    private BigDecimal shuimdItem2;

    /**
     * 表观密度(g/cm³）行2
     */
    @ExcelProperty(value = "表观密度(g/cm³）行2")
    private BigDecimal biaogmdItem2;

    /**
     * 表观密度(g/cm³）平均值
     */
    @ExcelProperty(value = "表观密度(g/cm³）平均值")
    private BigDecimal biaogmdPjz;

    /**
     * 吸水率单值1
     */
    @ExcelProperty(value = "吸水率单值1")
    private BigDecimal xisldzItem1;

    /**
     * 吸水率单值2
     */
    @ExcelProperty(value = "吸水率单值2")
    private BigDecimal xisldzItem2;

    /**
     * 吸水率平均值(g/cm³）
     */
    @ExcelProperty(value = "吸水率平均值(g/cm³）")
    private BigDecimal xislPjz;

    /**
     * 空隙率
     */
    @ExcelProperty(value = "空隙率")
    private BigDecimal kongxl;

    /**
     * 设备ids
     */
    @ExcelProperty(value = "设备ids")
    private String shebIds;

    @ExcelProperty(value = "子表")
    private List<Object> detailList;

    @ExcelProperty(value = "报表编号集")
    private List<String> baobbhList;

    public void setSongsrltzlItem1(BigDecimal songsrltzlItem1) {
        this.songsrltzlItem1 = BigDecimalUtil.stpTrailZero(songsrltzlItem1);
    }

    public void setSongsrltsyzzlItem1(BigDecimal songsrltsyzzlItem1) {
        this.songsrltsyzzlItem1 = BigDecimalUtil.stpTrailZero(songsrltsyzzlItem1);
    }

    public void setSongsrltrjItem1(BigDecimal songsrltrjItem1) {
        this.songsrltrjItem1 = BigDecimalUtil.stpTrailZero(songsrltrjItem1);
    }

    public void setSongsdjmdItem1(BigDecimal songsdjmdItem1) {
        this.songsdjmdItem1 = BigDecimalUtil.stpTrailZero(songsdjmdItem1);
    }

    public void setSongsrltzlItem2(BigDecimal songsrltzlItem2) {
        this.songsrltzlItem2 = BigDecimalUtil.stpTrailZero(songsrltzlItem2);
    }

    public void setSongsrltsyzzlItem2(BigDecimal songsrltsyzzlItem2) {
        this.songsrltsyzzlItem2 = BigDecimalUtil.stpTrailZero(songsrltsyzzlItem2);
    }

    public void setSongsrltrjItem2(BigDecimal songsrltrjItem2) {
        this.songsrltrjItem2 = BigDecimalUtil.stpTrailZero(songsrltrjItem2);
    }

    public void setSongsdjmdItem2(BigDecimal songsdjmdItem2) {
        this.songsdjmdItem2 = BigDecimalUtil.stpTrailZero(songsdjmdItem2);
    }

    public void setSongsPjz(BigDecimal songsPjz) {
        this.songsPjz = BigDecimalUtil.stpTrailZero(songsPjz);
    }

    public void setZhensrltzlItem1(BigDecimal zhensrltzlItem1) {
        this.zhensrltzlItem1 = BigDecimalUtil.stpTrailZero(zhensrltzlItem1);
    }

    public void setZhensrltsyzzlItem1(BigDecimal zhensrltsyzzlItem1) {
        this.zhensrltsyzzlItem1 = BigDecimalUtil.stpTrailZero(zhensrltsyzzlItem1);
    }

    public void setZhensrltrjItem1(BigDecimal zhensrltrjItem1) {
        this.zhensrltrjItem1 = BigDecimalUtil.stpTrailZero(zhensrltrjItem1);
    }

    public void setZhensdjmdItem1(BigDecimal zhensdjmdItem1) {
        this.zhensdjmdItem1 = BigDecimalUtil.stpTrailZero(zhensdjmdItem1);
    }

    public void setZhensrltzlItem2(BigDecimal zhensrltzlItem2) {
        this.zhensrltzlItem2 = BigDecimalUtil.stpTrailZero(zhensrltzlItem2);
    }

    public void setZhensrltsyzzlItem2(BigDecimal zhensrltsyzzlItem2) {
        this.zhensrltsyzzlItem2 = BigDecimalUtil.stpTrailZero(zhensrltsyzzlItem2);
    }

    public void setZhensrltrjItem2(BigDecimal zhensrltrjItem2) {
        this.zhensrltrjItem2 = BigDecimalUtil.stpTrailZero(zhensrltrjItem2);
    }

    public void setZhensdjmdItem2(BigDecimal zhensdjmdItem2) {
        this.zhensdjmdItem2 = BigDecimalUtil.stpTrailZero(zhensdjmdItem2);
    }

    public void setZhensPjz(BigDecimal zhensPjz) {
        this.zhensPjz = BigDecimalUtil.stpTrailZero(zhensPjz);
    }

    public void setJilszzlItem1(BigDecimal jilszzlItem1) {
        this.jilszzlItem1 = BigDecimalUtil.stpTrailZero(jilszzlItem1);
    }

    public void setJilhgzlItem1(BigDecimal jilhgzlItem1) {
        this.jilhgzlItem1 = BigDecimalUtil.stpTrailZero(jilhgzlItem1);
    }

    public void setJilbgzlItem1(BigDecimal jilbgzlItem1) {
        this.jilbgzlItem1 = BigDecimalUtil.stpTrailZero(jilbgzlItem1);
    }

    public void setShuiwItem1(BigDecimal shuiwItem1) {
        this.shuiwItem1 = BigDecimalUtil.stpTrailZero(shuiwItem1);
    }

    public void setShuimdItem1(BigDecimal shuimdItem1) {
        this.shuimdItem1 = BigDecimalUtil.stpTrailZero(shuimdItem1);
    }

    public void setBiaogmdItem1(BigDecimal biaogmdItem1) {
        this.biaogmdItem1 = ObjectUtils.isNotEmpty(BigDecimalUtil.stpTrailZero(biaogmdItem1))
            ? BigDecimalUtil.stpTrailZero(biaogmdItem1).setScale(0, BigDecimal.ROUND_HALF_UP)
            : null;
    }

    public void setJilszzlItem2(BigDecimal jilszzlItem2) {
        this.jilszzlItem2 = BigDecimalUtil.stpTrailZero(jilszzlItem2);
    }

    public void setJilhgzlItem2(BigDecimal jilhgzlItem2) {
        this.jilhgzlItem2 = BigDecimalUtil.stpTrailZero(jilhgzlItem2);
    }

    public void setJilbgzlItem2(BigDecimal jilbgzlItem2) {
        this.jilbgzlItem2 = BigDecimalUtil.stpTrailZero(jilbgzlItem2);
    }

    public void setShuiwItem2(BigDecimal shuiwItem2) {
        this.shuiwItem2 = BigDecimalUtil.stpTrailZero(shuiwItem2);
    }

    public void setShuimdItem2(BigDecimal shuimdItem2) {
        this.shuimdItem2 = BigDecimalUtil.stpTrailZero(shuimdItem2);
    }

    public void setBiaogmdItem2(BigDecimal biaogmdItem2) {
        this.biaogmdItem2 = ObjectUtils.isNotEmpty(BigDecimalUtil.stpTrailZero(biaogmdItem2))
            ? BigDecimalUtil.stpTrailZero(biaogmdItem2).setScale(0, BigDecimal.ROUND_HALF_UP)
            : null;
    }

    public void setBiaogmdPjz(BigDecimal biaogmdPjz) {
        this.biaogmdPjz = BigDecimalUtil.stpTrailZero(biaogmdPjz);
    }

    public void setXisldzItem1(BigDecimal xisldzItem1) {
        this.xisldzItem1 = BigDecimalUtil.stpTrailZero(xisldzItem1);
    }

    public void setXisldzItem2(BigDecimal xisldzItem2) {
        this.xisldzItem2 = BigDecimalUtil.stpTrailZero(xisldzItem2);
    }

    public void setXislPjz(BigDecimal xislPjz) {
        this.xislPjz = BigDecimalUtil.stpTrailZero(xislPjz);
    }

    public void setKongxl(BigDecimal kongxl) {
        this.kongxl = BigDecimalUtil.stpTrailZero(kongxl);
    }
}
